#目标名称
TARGET:=./bin/main

#指定编译器
CC:=gcc

#头文件路径
INC:=./inc
#INC+= 可以追加!!!

#库文件相关
#LIB:=./lib

#LIB_NAME:=

#tftp 服务器目录
TFTP:=~/tftpboot

#CSRC 保存了指定目录下所有以 .c 结尾的文件名且空格隔开
CSRC:=$(wildcard ./src/*.c)	
#即我们通过这个指令将./src里的所有.c文件全部保存到了一个命名为CSRC

#OJBS 保存 将 CSRC 中所有 .c 结尾是文件名替换成了 .o 结尾
OJBS:=$(patsubst %.c,%.o,$(CSRC))
#再全部将.c文件全部替换成.o结尾，并保存到了OJBS文件
#这是也就成为了我们需要的依赖

$(TARGET):$(OJBS)
	$(CC) $^ -I $(INC) -o $@
#目标文件./bin/main 然后对应的依赖也就是被替换成的.o文件
#如果有这些依赖，就gcc 所有的依赖文件 再输入对应的头文件，-o 输出到目标文件
#	cp $(TARGET) TFTP

%.o:%.c
	$(CC) -c $< -I $(INC) -o $@
#当没有依赖文件，就来找，这里的依赖文件就是所有的.o文件，当缺少.o文件，就会执行此时的代码，此时想要.o文件，依赖变成了对应的.c文件
#当需要对应需要文件，就会执行 gcc -c 此时缺失的.o文件的.c状态，也就是此时的依赖文件的首文件，然后输入对应的头文件和目标文件，就会得到，对应的.o文件
#这个代码会将所有执行/bin/main所需的.o文件（依赖）的.c版本全部转化成.o文件，因为一旦上方需要某个.o文件，这里都会在OJBS里找，是否有对应的.o，有就实质性转化

clean:
	rm *.o
